package main

import "fmt"

func fact(n int) int {
	if n == 0 {
		return 1
	}
	return fact(n - 1)
}

func fib(n int) int {
	if n < 2 {
		return n
	} else {
		return fib(n-1) + fib(n-2)
	}
}
func main() {
	fmt.Println(fact(7))

	var fib func(n int) int //可以把一个函数当做一个类型

	fib = func(n int) int { //并且可以在函数内实现这个函数
		if n < 2 {
			return n
		}

		return fib(n-1) + fib(n-2)
	}

	fmt.Println(fib(7))
	fmt.Println(fib(12))
}
